package exam.dao;

import org.apache.ibatis.annotations.Param;
import org.example.domain.Student_Exam;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface Student_ExamDao {
    List<Student_Exam> selectStudentByExamId(Long examId);
    void saves(List<Student_Exam> studentExams);
    int selectGeneratePaperCount(Long examId);
    void updateStudentPage_Path(@Param("examId")Long examId, @Param("page_path")String page_path);
    List<Long> selectStudentIdsByExamId(Long examId);
    void updateRelationStudentPage_path(@Param("examId")Long examId,@Param("studentId")Long studentId,@Param("page_path")String page_path);
    void removeExamPage(Long examId);
    int selectExamPaperInfo(Long examId);
    List<Map<String,String>> selectRelationStudentExam(Long studentId);
    Student_Exam selectExamByExamIdAndStudentId(@Param("examId")Long examId,@Param("studentId")Long StudentId);
    void updateStudentStatus(@Param("examId")Long examId,@Param("studentId")Long studentId,@Param("status")String status);
    void examAnswerSave(Map<String,String> param);
    void updateStudentStart_time(@Param("examId")Long examId,@Param("studentId")Long studentId);
    void updateStudentEnd_time(@Param("examId")Long examId, @Param("studentId")Long studentId, @Param("end_time")String date);
    void finishExamToUpdateFinishStatus(Long examId);
    void finishExamToUpdateMissStatus(Long examID);
    void studentExamScoreSave(@Param("examId") Long examId,@Param("studentId") Long studentId,@Param("score") int score) ;
    void studentExamScoreStrSave(@Param("examId") Long examId,@Param("studentId") Long studentId,@Param("scoreStr") String scoreStr) ;
    List<Student_Exam> selectExamAllStudentByExamId(Long examId);
    void flushExamStudentScore(Student_Exam student_exam);
    void reviewSave(Map<String,String> map);

}
